home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Special 24 / AMIGAplus Sonderheft 24 (2000)(Falke)(DE)[!].iso / PublicDomain / Anwendungen / MT-RechnungIII / Rexx / WWMahnung_3.outrexx < prev    next >
Text File  |  1998-08-30  |  6KB  |  239 lines

  1. /*
  2. ** Druck-, Vorschau, Sichern der 3. Mahnung mit Hilfe von WordWorth
  3. ** $VER: WWMahnung_3.outrexx V1.02 (30.08.98)
  4. */
  5.  
  6. PARSE ARG ARexxPort;
  7.  
  8. ADDRESS VALUE ARexxPort;
  9. OPTIONS RESULTS;
  10.  
  11. WWVorlage    = "WWDokumente/Mahnung3.ww";
  12. WWDokument    = "t:Mahnung3.ww";
  13. WWPort        = "WORDWORTH."
  14.  
  15. LF                    = '0a'x;                            /* Zeilenvorschub                */
  16.  
  17. Gefunden = 0;
  18. DO i = 1 TO 20 WHILE(Gefunden = 0)
  19.     IF show(ports, (WWPort || i)) THEN
  20.         DO;
  21.             Gefunden = 1;
  22.             WWPort = WWPort || i;
  23.         END;
  24. END;
  25.  
  26. IF Gefunden = 0 THEN
  27.     DO;
  28.         ES_TITLE                = "Warnung";
  29.         ES_TEXTFORMAT        = "WordWorth ist nicht aktiv, bitte starten sie dieses" || LF || "und versuchen Sie es erneut";
  30.         ES_GADGETFORMAT    = "Abbrechen";
  31.         EASY_REQUEST;
  32.         EXIT;
  33.     END;
  34.  
  35. /* Original WW-Dokument nach t: kopieren, um ein versehentliches überschreiben */
  36. /* dieser Vorlage zu verhindern */
  37. GET_REXXPATH;
  38. WWVorlage        = MTR_RESULT || WWVorlage;
  39. ADDRESS COMMAND "copy" WWVorlage WWDokument;
  40.  
  41. /* Oberfläche sperren */
  42. LOCKGUI;
  43.  
  44. /* Art ermitteln: 0 = Drucken, 1 = Vorschau, 2 = Speichern */
  45. PRINTSTATE;
  46. Druckart = MTR_RESULT;
  47.  
  48. Ende_Kennzeichen = 'N';
  49.  
  50. /* Suchen der zu druckenden Daten */
  51. GET_PREFS;
  52. PRINTFIND;
  53.  
  54. /* Neues Dokument öffnen */
  55. ADDRESS VALUE WWPort;
  56. NEW;
  57. WWPort = RESULT;
  58.  
  59. DO WHILE( MTR_RESULT > 0 & Ende_Kennzeichen = 'N');
  60.  
  61.     CALL DatenAufbereiten;
  62.     SELECT;
  63.         WHEN Druckart = 0 THEN    /* Drucken    */
  64.             DO;
  65.                 ADDRESS VALUE WWPort;
  66.                 PRINT;
  67.                 ADDRESS VALUE ARexxPort;
  68.                 MTSCREENTOFRONT;
  69.             END;
  70.         WHEN Druckart = 1 THEN    /* Vorschau    */
  71.             ADDRESS VALUE ARexxPort;
  72.         WHEN Druckart = 2 THEN    /* Sichern    */
  73.             DO;
  74.                 ADDRESS VALUE WWPort;
  75.                 SAVEAS;
  76.                 ADDRESS VALUE ARexxPort;
  77.                 MTSCREENTOFRONT;
  78.             END;
  79.         OTHERWISE
  80.             DO;
  81.                 ES_TITLE                = "Warnung";
  82.                 ES_TEXTFORMAT        = "Druckart wird nicht unterstützt!";
  83.                 ES_GADGETFORMAT    = "Ok";
  84.                 EASY_REQUEST;
  85.                 Ende_Kennzeichen    = 'J';
  86.             END;
  87.     END;
  88.  
  89.     PRINTFIND;
  90. END;
  91.  
  92. /* WordWorth-Datei aus t: wieder entfernen */
  93. ADDRESS COMMAND "delete" WWDokument;
  94.  
  95. /* Oberfläche wieder entsperren */
  96. ADDRESS VALUE ARexxPort;
  97. FREEGUI;
  98.  
  99. EXIT;
  100.  
  101. DatenAufbereiten:
  102.  
  103.     ADDRESS VALUE ARexxPort;
  104.  
  105.     IF PREFS.NUMBER_DIGITS > 0 THEN
  106.         DO;
  107.             ZW_Rechnung = RIGHT( (Copies("0",PREFS.NUMBER_DIGITS) || MTR_RESULT), PREFS.NUMBER_DIGITS );
  108.             ZW_Kunde = RIGHT( (Copies("0",PREFS.NUMBER_DIGITS) || OB.INVOICEE_NUMBER), PREFS.NUMBER_DIGITS );
  109.         END;
  110.     ELSE
  111.         DO;
  112.             ZW_Rechnung = MTR_RESULT;
  113.             ZW_Kunde = OB.INVOICEE_NUMBER;
  114.         END;
  115.     IF PREFS.CLIENT_CODE = 1 THEN
  116.         ZW_Kunde = OB.INVOICEE.CUSTOMER.CLIENT_CODE;
  117.  
  118.     FORMAT_DATE_LONG date(s);
  119.     PRINTDATE = MTR_RESULT;
  120.  
  121.     FORMAT_DATE_SHORT OB.DATE_BILL;
  122.     BILL_DATE_SHORT = MTR_RESULT;
  123.  
  124.     FORMAT_DATE_SHORT OB.DATE_DUNNING.1;
  125.     DUNNING1_DATE_SHORT = MTR_RESULT;
  126.  
  127.     FORMAT_DATE_SHORT OB.DATE_DUNNING.2;
  128.     DUNNING2_DATE_SHORT = MTR_RESULT;
  129.  
  130.     w = OB.CURRENCY_USED;
  131.     IF w < 2 THEN
  132.         FORMAT_MONEY1 OB.TOTAL_M_ALL_CH.w;
  133.     ELSE
  134.         FORMAT_MONEY2 OB.TOTAL_M_ALL_CH.w;
  135.     ZW_Betrag    = MTR_RESULT;
  136.  
  137.  
  138.     ADDRESS VALUE WWPort;
  139.     OPEN FILENAME WWDokument FORCE;
  140.  
  141.     DruckString    = OB.OFFICE.ADDRESS.ADDRESS.2 || LF;
  142.     i = INDEX( DruckString, LF);
  143.     IF i > 0 THEN
  144.         DO;
  145.             DruckTeil    = LEFT( DruckString, (i - 1) );
  146.             DruckString = SUBSTR(DruckString, (i + 1) );
  147.             i = INDEX( DruckString, LF);
  148.         END;
  149.     ELSE
  150.         DruckTeil    = DruckString;
  151.     FINDCHANGE FIND "<OFFICE.ADDRESS.ADDRESS.2>" CHANGE DruckTeil;
  152.     DO WHILE( i > 0 );
  153.         DruckTeil    = LEFT( DruckString, (i - 1) );
  154.         DruckString = SUBSTR(DruckString, (i + 1) );
  155.         LINE 1;
  156.         TEXT DruckTeil;
  157.         i = INDEX( DruckString, LF);
  158.     END;
  159.  
  160.     POSITION SOF;
  161.     FINDCHANGE FIND "<PRINTDATE>" CHANGE PRINTDATE;
  162.     /* Leider wird bei längeren Texten der hintere Teil verschluckt, also nochmal ausgeben */
  163.     TEXT PRINTDATE;
  164.  
  165.     POSITION SOF;
  166.     FINDCHANGE FIND "<OFFICE.ADDRESS.ADDRESS.0>" CHANGE OB.OFFICE.ADDRESS.ADDRESS.0;
  167.     /* Leider wird bei längeren Texten der hintere Teil verschluckt, also nochmal ausgeben */
  168.     TEXT OB.OFFICE.ADDRESS.ADDRESS.0;
  169.  
  170.     POSITION SOF;
  171.     DruckString    = OB.INVOICEE.CUSTOMER.ADDRESS.ADDRESS.2 || LF;
  172.     i = INDEX( DruckString, LF);
  173.     IF i > 0 THEN
  174.         DO;
  175.             DruckTeil    = LEFT( DruckString, (i - 1) );
  176.             DruckString = SUBSTR(DruckString, (i + 1) );
  177.             i = INDEX( DruckString, LF);
  178.         END;
  179.     ELSE
  180.         DruckTeil    = DruckString;
  181.     FINDCHANGE FIND "<CUSTOMER.ADDRESS.ADDRESS.2>" CHANGE DruckTeil;
  182.     DO WHILE( i > 0 );
  183.         DruckTeil    = LEFT( DruckString, (i - 1) );
  184.         DruckString = SUBSTR(DruckString, (i + 1) );
  185.         LINE 1;
  186.         TEXT DruckTeil;
  187.         i = INDEX( DruckString, LF);
  188.     END;
  189.  
  190.     POSITION SOF;
  191.     FINDCHANGE FIND "<OB.INVOICEE_NUMBER>" CHANGE ZW_Kunde;
  192.  
  193.     POSITION SOF;
  194.     FINDCHANGE FIND "<OB.NUMBER>" CHANGE ZW_Rechnung;
  195.     FINDCHANGE FIND "<OB.NUMBER>" CHANGE ZW_Rechnung;
  196.  
  197.     POSITION SOF;
  198.     FINDCHANGE FIND "<OB.DATE_BILL>" CHANGE BILL_DATE_SHORT;
  199.     FINDCHANGE FIND "<OB.DATE_BILL>" CHANGE BILL_DATE_SHORT;
  200.  
  201.  
  202.     POSITION SOF;
  203.     SELECT;
  204.         WHEN OB.INVOICEE.CUSTOMER.ADDRESS.SALUTATION = 0 THEN
  205.             DruckString = "Sehr geehrte Damen und Herren,";
  206.         WHEN OB.INVOICEE.CUSTOMER.ADDRESS.SALUTATION = 1 THEN
  207.             DruckString = "Sehr geehrtes Fräulein " || OB.INVOICEE.CUSTOMER.ADDRESS.SURNAME || ",";
  208.         WHEN OB.INVOICEE.CUSTOMER.ADDRESS.SALUTATION = 2 THEN
  209.             DruckString = "Sehr geehrter Frau " || OB.INVOICEE.CUSTOMER.ADDRESS.SURNAME || ",";
  210.         WHEN OB.INVOICEE.CUSTOMER.ADDRESS.SALUTATION = 3 THEN
  211.             DruckString = "Sehr geehrter Herr " || OB.INVOICEE.CUSTOMER.ADDRESS.SURNAME || ",";
  212.         OTHERWISE
  213.             DruckString = "Sehr geehrter Familie " || OB.INVOICEE.CUSTOMER.ADDRESS.SURNAME || ",";
  214.     END;
  215.     FINDCHANGE FIND "<CUSTOMER.ADDRESS.SALUTATION>" CHANGE DruckString;
  216.  
  217.     POSITION SOF;
  218.     FINDCHANGE FIND "<OB.DATE_DUNNING.1>" CHANGE DUNNING1_DATE_SHORT;
  219.  
  220.     POSITION SOF;
  221.     FINDCHANGE FIND "<OB.DATE_DUNNING.2>" CHANGE DUNNING2_DATE_SHORT;
  222.  
  223.     POSITION SOF;
  224.     FINDCHANGE FIND "<OB.TOTAL_M_ALL_CH>" CHANGE ZW_Betrag;
  225.  
  226.     POSITION SOF;
  227.     FINDCHANGE FIND "<OB.OFFICE.ADDRESS.BANK_NAME>" CHANGE OB.OFFICE.ADDRESS.BANK_NAME;
  228.  
  229.     POSITION SOF;
  230.     FINDCHANGE FIND "<OB.OFFICE.ADDRESS.BANK_CODE_NUMBER>" CHANGE OB.OFFICE.ADDRESS.BANK_CODE_NUMBER;
  231.  
  232.     POSITION SOF;
  233.     FINDCHANGE FIND "<OB.OFFICE.ADDRESS.ACCOUNT>" CHANGE OB.OFFICE.ADDRESS.ACCOUNT;
  234.  
  235.     POSITION SOF;
  236.     FINDCHANGE FIND "<OFFICE.SUR_PRENAME>" CHANGE (OB.EMPLOYEE.ADDRESS.PRENAME OB.EMPLOYEE.ADDRESS.SURNAME);
  237. RETURN;
  238.  
  239.